package com.bw.sparksql1.job1
import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.{DataFrame, SparkSession}
/**
  *
  */
object Job2 {
    Logger.getLogger("org").setLevel(Level.ERROR)

    def main(args: Array[String]): Unit = {

      val spark = SparkSession
        .builder()
        .master("local")
        .appName("Spark SQL basic example")
        .getOrCreate()
      val df: DataFrame = spark.read.json("person.json")
      //输出数据到控制台
      df.show()
      // This import is needed to use the $-notation（这个导入需要使用$-表示法）
      import spark.implicits._
      // 输出DataFrame结构化信息
      df.printSchema()
      //指定name列
      df.select("name").show()
      //通过条件查询
      df.select($"name", $"age" + 1).show()
      df.filter($"age" > 21).show()
      df.groupBy("age").count().show()

      // Register the DataFrame as a SQL temporary view （将DataFrame注册为临时视图）
      df.createOrReplaceTempView("person")
      val sqlDF = spark.sql("SELECT * FROM person")
      sqlDF.show()
    }
}